package org.opengoofy.index12306.biz.ticketservice.service;

import org.opengoofy.index12306.biz.ticketservice.dto.domain.RouteDTO;
import org.opengoofy.index12306.biz.ticketservice.dto.resp.TrainStationQueryRespDTO;

import java.util.List;

/**
 * @author ling007
 * @date 2024/6/3 16:29
 * @desciption: 列车站点接口层
 */
public interface TrainStationService {
    /**
     * 计算列车站点路线关系
     * 获取开始站点和目的站点及中间站点信息
     * @param trainId
     * @param startStation
     * @param endStation
     * @return 列车站点路线关系信息
     */
    List<RouteDTO> listTrainStationRoute(String trainId, String startStation, String endStation);

    /**
     * 获取需列车站点扣减路线关系
     * 获取开始站点和目的站点、中间站点以及关联站点信息
     *
     * @param trainId   列车 ID
     * @param departure 出发站
     * @param arrival   到达站
     * @return 需扣减列车站点路线关系信息
     */
    List<RouteDTO> listTakeoutTrainStationRoute(String trainId, String departure, String arrival);

    /**
     * 根据列车 ID 查询站点信息
     * @param trainId
     * @return
     */
    List<TrainStationQueryRespDTO> listTrainStationQuery(String trainId);
}
